package fun.tan90.easy.binlog.manager.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * 实例缓存监控历史信息 实体类。
 *
 * @author 陈浩杰
 * @since 2023-11-23
 */
@Data
public class MetricCacheStatsVo {


    /**
     * 实例ID
     */
    private String workId;

    /**
     * 缓存名称
     */
    private String cacheName;

    /**
     * 总访问次数
     */
    private Long requestCount;

    /**
     * 命中次数
     */
    private Long hitCount;

    /**
     * 未命中次数
     */
    private Long missCount;

    /**
     * 命中率
     */
    private Double hitRate;

    /**
     * 未命中率
     */
    private Double missRate;

    /**
     * 驱逐次数
     */
    private Long loadCount;

    /**
     * 加载成功次数
     */
    private Long loadSuccessCount;

    /**
     * 加载失败次数
     */
    private Long loadFailureCount;

    /**
     * 加载新值平时耗时(ns)
     */
    private Double averageLoadPenalty;

    /**
     * 总加载时间(ns)
     */
    private Long totalLoadTime;

    /**
     * 生成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date time;
}
